package com.jt.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author dc
 * @Classname SysResult
 * @Date 2020/2/10 15:32
 */
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult implements Serializable {
    private static final long serialVersionUID = 381334679918503807L;
    /**200表示成功,201表示失败*/
    private Integer status;
    /**服务器回传的提示信息*/
    private String msg;
    /**服务器返回页面数据*/
    private Object data;

    /**
     * 重载方法,实现数据简化
     * 只返回正确的状态码信息200
     * @return vo对象
     */
    public static SysResult success(){
        return new SysResult(200,"调用成功!",null);
    }

    /**
     * 返回服务器数据
     * @param data 数据库查询的数据
     * @return vo对象
     */
    public static SysResult success(Object data){
        return new SysResult(200,"调用成功!",data);
    }

    /**
     * 返回服务器提示信息
     * @param msg 需要展示的提示信息
     * @return vo对象
     */
    public static SysResult success(String msg,Object data){
        return new SysResult(200,msg,data);
    }

    public static SysResult success(Integer status,Object data){
        return new SysResult(status,"调用成功",data);
    }

    /**
     * 服务器访问失败
     * @return vo对象
     */
    public static SysResult fail(){
        return new SysResult(201,"业务调用失败",null);
    }
    public static SysResult fail(String msg){
        return new SysResult(201,msg,null);
    }

   public static SysResult fail(Throwable t){
        return new SysResult(201,t.getMessage(),null);
   }

}
